您好,欢迎来到达州工业云! 平台首页 企业驾驶舱 帮助中心 企业登录 企业注册

HI,欢迎使用达州工业云平台!

账号必须大于2位

创新资源平台
服务平台首页>专利库>专利详情

一种链状网络的实时通信与时钟同步方法

  • 申请号:CN201110264368.5 申请公布号: CN102332973B
  • 申请日: 2011-09-07 申请公布日: 2014-07-09
  • 申请(专利权)人: 专利代理机构: 上海旭诚知识产权代理有限公司
  • 分类号:H04L7/00;H04L12/70

专利介绍

本发明公开了一种链状网络的实时通信与时钟同步方法,包括以下步骤:A、主设备对各从设备进行枚举和配置,开启各从设备的转发功能,形成以太网链状网络结构;B、主设备与从设备之间,或者从设备之间通过交换延时请求报文和延时应答报文,来获取相关的时间戳,再计算当前设备与下一从设备之间的线路延时并将线路延时储存在当前设备中;C、主设备发送纠正初始偏差信号报文,各从设备接收到纠正初始偏差信号报文后,依次完成对本地时钟的初始偏差纠正;D、主设备与各从设备之间以集总帧的形式来进行周期性地实时通信,时钟同步过程嵌在实时通信过程之中。本发明的方法解决了两者结合所带来的实时通信调度问题。
1.一种链状网络的实时通信与时钟同步方法,应用于以太网信息传输系统中,所述系统包括一个主设备和多个从设备,其特征在于,包括以下步骤:xa0A、所述主设备对各从设备进行枚举和配置,开启所述各从设备的转发功能,形成以太网链状网络结构;xa0B、所述主设备与所述从设备之间,或者所述从设备之间通过交换延时请求报文和延时应答报文,来获取相关的时间戳,再计算当前设备与下一从设备之间的线路延时并将所述线路延时储存在所述当前设备中;xa0C、所述主设备发送纠正初始偏差信号报文,所述各从设备接收到所述纠正初始偏差信号报文后,依次完成对本地时钟的初始偏差纠正;xa0D、所述主设备与所述各从设备之间以集总帧的形式来进行周期性地实时通信,时钟同步过程嵌在实时通信过程之中;xa0所述步骤C进一步包括以下步骤:xa0C1、所述主设备发送纠正初始偏差信号报文,所述纠正初始偏差信号报文带有发送时间戳tM[0]和所述主设备到所述第一从设备的端到端延时xa0ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="291"/>C2、第k从设备接收到所述纠正初始偏差信号报文时记录对应的接收时间戳ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="140"/>xa0所述第k从设备解析所述纠正初始偏差信号报文后,提取出所述发送时间戳tM[0]和所述端到端延时ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="295"/>xa0并将所述纠正初始偏差信号报文转发给第k+1从设备;记录转发时间作为所述第k从设备发送所述纠正初始偏差信号报文的发送时间戳ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="143"/>xa0在所述第k从设备转发给所述第k+1从设备的所述纠正初始偏差信号报文中,将所述第k从设备中的驻留时间、所述第k从设备与所述第k+1从设备之间的线路延时累加到ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="260"/>中,得到所述主设备到所述第k+1从设备的端到端延时ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="313"/>xa0并用所述主设备到所述第k+1从设备的端到端延时ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="305"/>替代ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="310"/>xa0然后,所述第k从设备纠正初始偏差,其中,k≥2;xa0C3、对每个从设备纠正初始偏差,直至所述链状网络结构最末端的从设备完成纠正初始偏差;xa0其中当所述主设备发送实时通信报文时,所述集总帧的同步数据窗口的长度为0字节;当所述主设备发送同步报文时,带有端到端延时和所述主设备的发送时间戳的所述同步数据窗口的长度为6字节。xa0
2.如权利要求1所述的链状网络的实时通信与时钟同步方法,其中所述步骤A进一步包括以下步骤:xa0A1、所述主设备发送配置报文0x01AF,其中,所述配置报文的低字节表示报文类型,所述配置报文的高字节表示从设备号;xa0A2、与所述主设备相连的第一从设备收到所述配置报文后,将所述第一从设备编号为01并开启所述第一从设备的转发功能,所述第一从设备将所述配置报文修改为0x02AF后,转发给下一从设备,并向所述主设备发送第一配置反馈报文0x01BF;xa0A3、与所述第一从设备相连的第二从设备收到所述配置报文后,将所述第二从设备编号为02并开启所述第二从设备的转发功能,所述第二从设备将所述配置报文修改为0x03AF后,转发给下一从设备,并向所述主设备发送第二配置反馈报文0x02BF;xa0A4、以此类推,直至所有从设备均完成网络配置。xa0
3.如权利要求2所述的链状网络的实时通信与时钟同步方法,其中所述步骤B进一步包括以下步骤:xa0B1、所述主设备向所述第一从设备发送第一延时请求报文,并记录对应的发送时间作为延时请求发送时间戳tM_Delay_Req;所述第一从设备接收所述延时请求报文时记录对应的接收时间作为延时请求接收时间戳ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="257"/>所述第一从设备解析所述延时请求报文后,向所述主设备发送延时应答报文,并记录对应的发送时间作为延时应答发送时间戳ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="258"/>所述延时请求接收时间戳xa0ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="228"/>和所述延时应答发送时间戳ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="232"/>随所述延时应答报文一起发送给所述主设备;所述主设备收到所述延时应答报文时记录对应的接收时间作为xa0延时应答接收时间戳tM_Delay_Resp;所述主设备根据所述延时请求发送时间戳、所述延时请求接收时间戳、所述延时应答发送时间戳和所述延时应答接收时间戳,计算出所述第一从设备与所述主设备之间的线路延时Delay1并储存在所述主设备中;xa0B2、所述第一从设备向所述主设备发送延时应答报文的同时,向所述第二从设备发送第二延时请求报文,记录第二延时请求发送时间戳ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="250"/>所述第二从设备接收到所述第二延时请求报后重复第一从设备的步骤,并得到第二延时请求接收时间戳ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="254"/>第二延时应答发送时间戳ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="232"/>和第二延时应答接收时间戳ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="255"/>所述第一从设备根据所述第二延时请求发送时间戳、所述第二延时请求接收时间戳、所述第二延时应答发送时间戳和所述第二延时应答接收时间戳,计算出所述第二从设备与所述第一从设备之间的线路延时Delay2并储存在所述第一从设备中;xa0B3、以此类推,计算得出所述第k从设备与第k-1从设备之间的线路延时Delayk并储存在所述第k-1从设备中,直到计算出所述链状网络结构最末端的从设备与其前一个从设备之间的线路延时,其中,k≥2。xa0
4.如权利要求3所述的链状网络的实时通信与时钟同步方法,其中所述Delayk的计算公式为:xa0ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="700"/>其中k为设备编号。xa0
5.如权利要求1所述的链状网络的实时通信与时钟同步方法,其中所述第k从设备纠正初始偏差进一步为:所述第k从设备将当前本地时钟Currenttimek纠正为ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="700"/>
6.如权利要求1或5所述的链状网络的实时通信与时钟同步方法,其中所述集总帧包括前导符、帧首定界符、帧类型、从设备数据窗口、同步数据窗口和帧检验序列;所述前导符、所述帧首定界符和所述帧检验序列分别与标准以太网帧xa0的前导符、帧首定界符和帧检验序列相同;所述帧类型用于区别所述集总帧是否带有同步数据;所述从设备数据窗口根据所述从设备的数量划分为多段,每段包括从设备编号、周期性数据和非周期性数据;所述同步数据窗口包括时间戳和端到端延时。xa0
7.如权利要求6所述的链状网络的实时通信与时钟同步方法,其中所述步骤D进一步包括以下步骤:xa0D1、每隔预定时间,实时通信报文的所述同步数据窗口带有所述主设备的发送端到所述第一从设备的接收端的延时ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="296"/>和发送时间戳tM[N],其中,N表示第N次同步过程,N≥0;xa0D2、第k从设备接收到所述实时通信报文时,记录对应的接收时间戳xa0ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="185"/>所述第k从设备解析所述实时通信报文,并提取出ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="310"/>和tM[N]后,将所述实时通信报文转发给第k+1从设备,记录对应的转发时间戳ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="157"/>在所述第k从设备转发给所述第k+1从设备的所述实时通信报文中,将所述第k从设备中的驻留时间、所述第k从设备与所述第k+1从设备之间的线路延时累加到ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="288"/>中,得到所述主设备到所述第k+1从设备的端到端延时xa0ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="341"/>并用所述端到端延时ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="306"/>替代所述实时通信报文中的xa0ntent="drawing" img-format="jpg" inline="no" orientation="portrait" wi="322"/>D3、对所述第k从设备进行时钟校准,直至所述链状网络结构最末端的从设备完成对本地时钟的时钟校准。xa0技术领域
本发明涉及一种实时通信与时钟同步方法,尤其涉及一种基于集总帧和透明时钟的链状网络的实时通信与同步方法。
背景技术
以太网由于其开放性好、应用广泛及价格低廉的特点,已越来越多地被用于工业现场通信。与传统的商业以太网相比,应用于工业现场的以太网信息传输系统要求具有更高的实时性,进而对作为网络信息传输实时性基础的系统时钟同步也提出了更高的要求。目前的以太网信息传输系统中多节点的时钟同步普遍采用IEEExa01588协议,其基本功能是使分布式网络内的其他时钟与最精确时钟保持同步。IEEExa01588协议中定义了一种精确时间协议(PTP,Precisionxa0Timexa0Protocol),用于对标准以太网或其他采用多播技术的分布式总线系统中的传感器、执行器以及其他终端设备的时钟进行亚微秒级同步。透明时钟模式是IEEE1588v2协议的一种工作方式,其通过计算同步报文在中间设备的驻留时间,对IEEE1588协议报文进行修正和转发处理,以实现报文在中间设备的透明传输,改善网络对称性,并减小设备级联带来的同步误差累积,从而可以更为精确地进行时钟同步。申请号为200710014419.2,公开号为CN1010173A,发明名称为“一种实时以太网链状网络节点间同步的装置和方法”的中国专利申请提出了一种时间同步方法。在该方法中,各节点测量自己与最后一个节点间的网络延时。第一个网络节点周期性地发送同步报文,各节点在收到该同步报文后延时特定的时间后动作,以实现网络节点间动作的同步性。在该方法中,各节点内用于延时计时的定时器的频率存在差异,且没有进行必要的频率补偿,因此,该方法的同步精度不高,若定时器采用普通晶振,则只能实现微秒级同步。申请号为200910169537.X,公开号为CN101692632,发明名称为“一种支持透传时钟的装置及方法”的中国专利申请,提出了一种支持透明时钟的方法及装置。但该方法主要用于IP传输设备,需要在本地IP传输设备上额外增加透传时钟装置,从而增加了系统成本和消息处理转发时间,难以满足工业控制网络的实时性要求。申请号为200810217520.2,公开号为CN101404618A,发明名称为“实现精确时钟同步协议中透传时钟的系统、装置和方法”的中国专利申请,公开了一种实现透明时钟的方法。该方法主要用于路由交换设备,为了获取精确的时间戳和驻留时间,需要在路由交换设备前、后各增加一个透传时钟装置,从而增大了系统的数据通信周期,降低了系统的实时性。上述技术方案均没有考虑时钟同步在以太网链状网络上实施时的实时通信调度问题。在实际应用中,各设备之间不仅要完成时钟同步所需的延时测量、时钟偏差纠正、频率补偿等工作,还需周期性地进行实时通信。若不采用合理的实时通信调度,上述步骤间就会互相干扰,从而使系统通信出现故障,实时性和同步性遭到破坏。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种链状网络的实时通信与时钟同步方法,集合了集总帧传输效率高和透明时钟累积误差小的优点,解决了两者结合所带来的实时通信调度问题,也即带宽分配问题,从而实现了高效率的数据传输和各设备之间的实时通信和高精度时钟同步,满足了工业以太网强实时性和高精度时钟同步的要求。为实现上述目的,本发明提供了一种链状网络的实时通信与时钟同步方法,应用于以太网信息传输系统中,所述系统包括一个主设备和多个从设备,包括以下步骤:A、所述主设备对各从设备进行枚举和配置,开启所述各从设备的转发功能,形成以太网链状网络结构;B、所述主设备与所述从设备之间,或者所述从设备之间通过交换延时请求报文和延时应答报文,来获取相关的时间戳,再计算当前设备与下一从设备之间的线路延时并将所述线路延时储存在所述当前设备中;C、所述主设备发送纠正初始偏差信号报文,所述各从设备接收到所述纠正初始偏差信号报文后,依次完成对本地时钟的初始偏差纠正;D、所述主设备与所述各从设备之间以集总帧的形式来进行周期性地实时通信,时钟同步过程嵌在实时通信过程之中。进一步地,所述步骤A进一步包括以下步骤:A1、所述主设备发送配置报文0x01AF,其中,所述配置报文的低字节表示报文类型,所述配置报文的高字节表示从设备号;A2、与所述主设备相连的第一从设备收到所述配置报文后,将所述第一从设备编号为01并开启所述第一从设备的转发功能,所述第一从设备将所述配置报文修改为0x02AF后,转发给下一从设备,并向所述主设备发送第一配置反馈报文0x01BF;A3、与所述第一从设备相连的第二从设备收到所述配置报文后,将所述第二从设备编号为02并开启所述第二从设备的转发功能,所述第二从设备将所述配置报文修改为0x03AF后,转发给下一从设备,并向所述主设备发送第二配置反馈报文0x02BF;A4、以此类推,直至所有从设备均完成网络配置。进一步地,所述步骤B进一步包括以下步骤:B1、所述主设备向所述第一从设备发送第一延时请求报文,并记录对应的发送时间作为延时请求发送时间戳tM_Delay_Req;所述第一从设备接收所述延时请求报文时记录对应的接收时间作为延时请求接收时间戳ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="239"/>所述第一从设备解析所述延时请求报文后,向所述主设备发送延时应答报文,并记录对应的发送时间作为延时应答发送时间戳ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="239"/>所述延时请求接收时间戳ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="206"/>和所述延时应答发送时间戳ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="215"/>随所述延时应答报文一起发送给所述主设备;所述主设备收到所述延时应答报文时记录对应的接收时间作为延时应答接收时间戳tM_Delay_Resp;所述主设备根据所述延时请求发送时间戳、所述延时请求接收时间戳、所述延时应答发送时间戳和所述延时应答接收时间戳,计算出所述第一从设备与所述主设备之间的线路延时Delay1并储存在所述主设备中;B2、所述第一从设备向所述主设备发送延时应答报文的同时,向所述第二从设备发送第二延时请求报文,记录第二延时请求发送时间戳ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="232"/>所述第二从设备接收到所述第二延时请求报后重复第一从设备的步骤,并得到第二延时请求接收时间戳ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="237"/>第二延时应答发送时间戳ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="218"/>和第二延时应答接收时间戳ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="241"/>所述第一从设备根据所述第二延时请求发送时间戳、所述第二延时请求接收时间戳、所述第二延时应答发送时间戳和所述第二延时应答接收时间戳,计算出所述第二从设备与所述第一从设备之间的线路延时Delay2并储存在所述第一从设备中;B3、以此类推,计算得出所述第K从设备与第k-1从设备之间的线路延时Delayk并储存在所述第k-1从设备中,直到计算出所述链状网络结构最末端的从设备与其前一个从设备之间的线路延时,其中,k≥2。进一步地,所述Delayk的计算公式为:ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/>其中k为设备编号。进一步地,所述步骤C进一步包括以下步骤:C1、所述主设备发送纠正初始偏差信号报文,所述纠正初始偏差信号报文带有发送时间戳tM[0]和所述主设备到所述第一从设备的端到端延时ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="273"/>C2、第k从设备接收到所述纠正初始偏差信号报文时记录对应的接收时间戳ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="126"/>所述第k从设备解析所述纠正初始偏差信号报文后,提取出所述发送时间戳tM[0]和所述端到端延时ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="284"/>并将所述纠正初始偏差信号报文转发给第k+1从设备;记录转发时间作为所述第k从设备发送所述纠正初始偏差信号报文的发送时间戳ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="127"/>在所述第k从设备转发给所述第k+1从设备的所述纠正初始偏差信号报文中,将所述第k从设备中的驻留时间、所述第k从设备与所述第k+1从设备之间的线路延时累加到ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="252"/>中,得到所述主设备到所述第k+1从设备的端到端延时ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="305"/>并用所述主设备到所述第k+1从设备的端到端延时ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="291"/>替代ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="300"/>然后,所述第k从设备纠正初始偏差,其中,k≥2;C3、对每个从设备纠正初始偏差,直至所述链状网络结构最末端的从设备完成纠正初始偏差。进一步地,所述第k从设备纠正初始偏差进一步为:所述第k从设备将当前本地时钟Currenttimek纠正为 t M [ 0 ] + Delay MtoS k [ 0 ] + ( Currenttime k - t S k [ 0 ] ) . ]]>进一步地,所述集总帧包括前导符、帧首定界符、帧类型、从设备数据窗口、同步数据窗口和帧检验序列。所述前导符、帧首定界符和帧检验序列与标准以太网帧相同;所述帧类型用于区别该集总帧是否带有同步数据;所述从设备数据窗口根据从设备数量n分为n段,每段包括从设备编号、周期性数据(包括控制指令和实时反馈信息)和非周期性数据(报警信息和用户定义的非周期数据);所述同步数据窗口包括时间戳和端到端延时。进一步地,所述步骤D进一步包括以下步骤:D1、每隔预定时间,实时通信报文的所述同步数据窗口带有所述主设备的发送端到所述第一从设备的接收端的延时ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="283"/>和发送时间戳tM[N],其中,N表示第N次同步过程,N≥1;D2、第k从设备接收到所述实时通信报文时,记录对应的接收时间戳ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="169"/>所述第k从设备解析所述实时通信报文,并提取出ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="299"/>和tM[N]后,将所述实时通信报文转发给第k+1从设备,记录对应的转发时间戳ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="145"/>在所述k从设备转发给所述k+1从设备的所述实时通信报文中,将所述第k从设备中的驻留时间、所述第k从设备与所述第k+1从设备之间的线路延时累加到ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="270"/>中,得到所述主设备到所述第k+1从设备的端到端延时ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="324"/>并用所述端到端延时ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="297"/>替代所述实时通信报文中的ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="304"/>D3、对所述第k从设备进行时钟校准,直至所述链状网络结构最末端的从设备完成对本地时钟的时钟校准。进一步地,当所述主设备发送实时通信报文时,所述集总帧的所述同步数据窗口的长度为0字节;当所述主设备发送同步报文时,带有端到端延时和所述主设备的发送时间戳的所述同步数据窗口的长度为6字节。本发明的有益效果在于:本发明的方法采用集总帧的方式避免带宽冲突,最大化地利用以太网带宽进行用户数据传输。本发明的方法采用IEEE1588精确时钟同步协议中的透明时钟来解决以太网链状网络中的时钟同步问题,可以减小多级级联的累积同步误差,实现高精度时钟同步。本发明的方法将线路延时测量放在初始化阶段进行,并通过对集总帧进行配置,使主设备不用发送专门的同步报文即可完成时钟同步,解决了集总帧实时通信方式和透明时钟同步过程结合所带来的实时调度问题,满足了工业以太网强实时性和高精度时钟同步的要求。以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
图1为本发明的一个实施例的以太网信息传输系统的结构示意图。图2为本发明的一个实施例的实时通信与时钟同步方法的过程示意图。图3为本发明的一个实施例的集总帧的结构示意图。
具体实施方式
如图1所示,在本实施例中,以太网信息传输系统包括1个主设备和n个从设备(n≥2)。在本实施例中,假设有4个从设备。以太网信息传输系统采用环型拓扑结构,各设备之间通过长度为3米的双绞线连接。主设备的时钟作为整个网络系统的时钟源,而在各从设备中可构建频率可调的时钟计数器。在本实施例中,以太网信息传输系统的用户层协议通过DSP实现。DSP采用Texasxa0Instruments公司的TMS320F2812芯片,除了芯片自带的flash存储区之外,以太网信息传输系统利用扩展的SRAM-IS61LV51216作为DSP运行的数据存储区。在本实施例中,采用FPGA作为系统的数据链路层,并在其中构建频率可调的时钟计数器。具体而言,FPGA为Altera公司生产的Cyclonexa0II系列芯片,型号为EP8C8Q208I8N。在本实施例中,物理层通过Intel公司的LXT973芯片实现,该芯片带有2个通信端口,且支持双绞线和光纤通信两种通信媒介。图2为本发明的一个实施例的实时通信与时钟同步方法的过程示意图。本发明的实时通信与时钟同步方法包括以下步骤:A、以太网链状网络结构的配置;在网络配置开始之前,各从设备未编号,且各从设备的内部转发功能关闭,整个网络断开。系统上电,网络初始化后,主设备发送配置报文0x01AF(低字节表示报文类型,AF为网络初始化配置报文;高字节表示从设备号)。与主设备相连的从设备收到此配置报文后,将当前从设备编号为01,并开启当前从设备的转发功能。当前从设备将配置报文修改为0x02AF后,转发给下一从设备,并向主设备发送配置反馈报文0x01BF。与1号从设备相连的从设备收到配置报文后,将当前从设备编号为02,并开启当前从设备的转发功能。当前从设备将配置报文修改为0x03AF后,转发给下一从设备,并向主设备发送配置反馈报文0x02BF。以此类推,所有从设备均做类似操作,直到最后一个从设备完成网络配置。每个从设备的编号各自存储在其自身中。B、透明时钟中线路延时的单次测量;主设备向1号从设备发送延时请求报文Delay_Req,并记录其对应的发送时间作为延时请求发送时间戳tM_Delay_Req。1号从设备接收此延时请求报文时,记录其对应的接收时间作为延时请求接收时间戳ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="237"/>1号从设备解析此延时请求报文后,向主设备发送延时应答报文Delay_Resp,并记录对应的发送时间作为延时应答发送时间戳ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="246"/>延时请求接收时间戳ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="208"/>和延时应答发送时间戳ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="218"/>随延时应答报文Delay_Resp一起发送给主设备。主设备收到延时应答报文Delay_Resp时,记录对应的接收时间作为延时应答接收时间戳tM_Delay_Resp。主设备根据上述四个时间戳,也即tM_Delay_Req、ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="496"/>和tM_Delay_Resp,计算出1号从设备与主设备之间的线路延时Delay1,并储存在主设备中。在1号从设备与2号从设备之间做类似操作,可计算出2号从设备与1号从设备之间的线路延时Delay2,并将其储存在1号从设备中。以此类推,直到测出n号从设备与n-1号从设备(在本实施例中,为4号从设备与3号从设备)之间的线路延时。其中,线路延时Delayk的计算公式为:ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/>C、各从设备的时钟的初始偏差纠正;主设备发送纠正初始偏差信号报文ClkRst,该报文带有精确的发送时间戳tM[0]和主设备到1号从设备的端到端延时ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="279"/>1号从设备收到此报文时,记录对应的接收时间戳ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="127"/>1号从设备解析此报文后,从中提取出tM[0]和ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="293"/>并将此报文转发给2号从设备,记录转发时间作为1号从设备发送ClkRst信号的时间戳ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="126"/>同理,k(k≥1)号从设备收到此报文时,记录对应的接收时间戳ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="130"/>k号从设备解析此报文后,从中提取出tM[0]和ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="298"/>并将此报文转发给k+1号从设备,记录转发时间作为k号从设备发送ClkRst信号的时间戳ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="131"/>在k号从设备转发给k+1号从设备的ClkRst信号报文中,将k号从设备中的驻留时间、k号从设备与k+1号从设备之间的线路延时累加到ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="252"/>中,得到主设备到k+1号从设备的端到端延时ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="302"/>并用主设备到k+1号从设备的端到端延时ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="322"/>替代ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="341"/>然后,k号从设备纠正初始偏差,将当前本地时钟Currenttimek纠正为 t M [ 0 ] + Delay MtoS k [ 0 ] + ( Currenttime k - t S k [ 0 ] ) . ]]>以此类推,直至最后一个从设备完成纠正初始偏差。D、基于集总帧的周期性实时通信。主设备与各从设备之间采用集总帧的方式进行通信。如图3所示,集总帧包括前导符、帧首定界符、帧类型、从设备数据窗口、同步数据窗口和帧检验序列。前导符、帧首定界符和帧检验序列与标准以太网帧相同。帧类型用于区别该集总帧是否带有同步数据。从设备数据窗口根据从设备的数量n而被分为n段(在本实施例中为4段),每段包括从设备编号、周期性数据(包括控制指令和实时反馈信息)和非周期性数据(包括报警信息和用户自定义的非周期数据)。同步数据窗口包括时间戳和端到端延时。主设备周期性地发送实时通信报文至各从设备,不用发送专门的同步报文。请参阅图2,每隔一定周期(周期一般为2秒),在实时通信报文的同步数据窗口带有主设备发送端到1号从设备接收端的延时ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="292"/>和精确的发送时间戳tM[N],其中N(N≥0)代表第N次同步过程。k(k≥1)号从设备收到此实时通信报文时,记录对应的接收时间戳ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="169"/>k号从设备解析此实时通信报文,并从中提取出ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="270"/>和tM[N]后,将此报文转发给k+1号从设备,记录对应的转发时间戳ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="150"/>在k号从设备转发给k+1号从设备的报文中,将该报文在从设备k中的驻留时间、从设备k与从设备k+1之间的线路延时累加到ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="283"/>中,得到主设备发送端到k+1号从设备接收端的延时ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="336"/>并用ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="316"/>替代报文中的ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="312"/>然后,k号从设备进行时钟校准(也即频率补偿),直到最后一个从设备完成对本地时钟的时钟校准。其中,主设备到从设备k的端到端延时 Delay MtoS k [ N ] = Delay 1 k = 1 , N ≥ 0 Delay MtoS ( k - 1 ) [ N ] + ( t S ( k - 1 ) ′ [ N ] - t S ( k - 1 ) [ N ] ) + Delay k k ≥ 2 , N ≥ 0 ]]>时间偏移量 Offset k [ N ] = t S k [ N ] - t M [ N ] - Delay MtoS k [ N ] . ]]>在本实施例中,频率补偿值FreqCompValuek[N]由以下公式获得: FreqComp Value k [ N ] = FreqComp Value k [ 0 ] + Δ u k [ N ] Δu k [ N ] = β k [ N ] · FreqComp Value k [ N - 1 ] + Δu k [ N - 1 ] β k [ N ] = α - 1 = ( r k [ N ] - r k [ N - 1 ] ) - Offset k [ N ] - ( y k [ N ] - y k [ N - 1 ] ) ( y k [ N ] - y k [ N - 1 ] ) Δu k [ 0 ] = 0 ]]>其中,Δuk[N]为k号从设备频率补偿值的变化量;rk[N]为k号从设备第N次收到同步报文时所对应的主时钟的系统时间。k号从设备根据最近测量的主设备到当前设备的端到端延时而对其值进行估计,估计值为:ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="616"/>yk[N]为k号从设备第N次收到同步报文时的本地时钟时间,ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="306"/>FreqCompValuek[0]的取值取决于当前从设备的频率补偿电路中的qk和rk的取值以及PLL的配置,在本实施例中,FreqCompValuek[0]的取值为0x80000000。每次同步过程计算得到的频率补偿值FreqCompValue[k],直接作用于各从设备的频率可调的时钟计数器并进行频率补偿。时钟同步过程嵌入在实时通信过程之中。实时通信周期与时钟同步周期互不相同,时钟同步周期远大于实时通信周期,将同步过程嵌在实时通信过程之中,并不影响系统的实时通信。在本实施例中,主设备发送一般实时通信报文时,将集总帧的同步数据窗口的长度配置为0字节。而当需要发送同步报文时,将集总帧的同步数据窗口配置为6字节,此时,该报文的同步数据窗口带有端到端延时和主设备的发送时间戳,可同时实现一般实时通信报文和时钟同步报文的发送功能。因此,本发明的方法不需要发送专门的同步报文,即可完成时钟同步。经过上述4个步骤,主设备与各从设备之间就能周期性地实时通信,且各设备的时钟高精度同步。表1xa0xa0从设备号
xa0xa0最大偏差
xa0xa0最小偏差
xa0xa0偏差均值
xa0xa0抖动
xa0xa0标准差
xa0xa01
xa0xa032.45
xa0xa0-44.84
xa0xa0-7.730
xa0xa077.29
xa0xa015.43
xa0xa02
xa0xa051.72
xa0xa0-75.97
xa0xa0-9.741
xa0xa0127.69
xa0xa023.63
xa0xa03
xa0xa065.08
xa0xa0-121.6
xa0xa0-66.06
xa0xa0186.68
xa0xa031.80
xa0xa04
xa0xa0136.8
xa0xa0-95.08
xa0xa018.67
xa0xa0231.88
xa0xa036.36
表1为本实施例的运行结果的相关参数。在主设备和从设备中,用同步后的时钟产生1秒的时钟计数,并捕捉其上升沿。以主设备时钟为参考量,将各从设备时钟相对于主设备时钟的偏移量用示波器显示出来。从表1可以得到,1号从设备到4号从设备的时钟抖动依次为77.29ns、127.69ns、186.68ns、231.88ns,标准差依次为15.43ns、23.63ns、31.80ns、36.36ns。随着从设备数量的增多,链路最末端的从设备的时钟同步误差逐渐加大,二者呈线性关系,同步误差增加较为平缓。因此,在从设备较多的情况下,仍然能达到亚微秒级的同步精度。以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思做出诸多修改和变化。因此,凡本技术领域的技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。